package com.odontosis.view.servlet;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.ajaxtags.servlets.BaseAjaxServlet;
import org.apache.struts.upload.FormFile;

import com.odontosis.entidade.FormaPagamento;
import com.odontosis.entidade.Paciente;
import com.odontosis.entidade.Recibo;
import com.odontosis.entidade.ReciboDetalhe;
import com.odontosis.ioc.ContainerIoc;
import com.odontosis.util.StringUtilsOdontosis;

/**
 * An example servlet that responds to an ajax:htmlContent tag action.
 * 
 * @author Darren L. Spurgeon
 * @version $Revision: 1.2 $ $Date: 2007/06/08 23:59:02 $
 */
public class HtmlContentServlet extends BaseAjaxServlet {

  /**
   * @see org.ajaxtags.demo.servlet.BaseAjaxServlet#getXmlContent(javax.servlet.http.HttpServletRequest,
   *      javax.servlet.http.HttpServletResponse)
   */
  public String getXmlContent(HttpServletRequest request, HttpServletResponse response)
      throws Exception {
    String make = request.getParameter("make");
    Recibo recibo = ContainerIoc.getReciboService().load(Long.valueOf(make));
    SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
    StringBuffer html = new StringBuffer();
    html.append("<h2>").append("Detalhes do Recibo").append("</h2>");
    final Paciente paciente = recibo.getPagamento().getServico().getPacienteServico();
    html.append("<b>Via: </b>"+ recibo.getVersao());
    html.append("<br>");
    html.append("<b>Número do Recibo: </b>" + StringUtilsOdontosis.colocaZeros(recibo.getId().toString(), 10));
    html.append("<br>");
	html.append("<b>Paciente: </b>" + StringUtilsOdontosis.colocaZeros(paciente.getNumeroPasta(), 10)+ " - " + paciente.getNome() );
    html.append("<br>");
    html.append("<b>Data da Emissão(1º via): </b>" + formato.format(recibo.getData()));
    html.append("<br>");
    html.append("<b>Valor: </b>" +StringUtilsOdontosis.formatarDouble(recibo.getValor().doubleValue()));
    html.append("<br>");
    html.append("<b>Tipo: </b>" +recibo.getTipoRecibo().getDescricao());
    html.append("<br>");
    html.append("<b>Número da Parcela: </b>"+ recibo.getNumeroParcela());
    html.append("<br>");
    html.append("<b>Mês/Ano Vencimento da Parcela: </b>"+ recibo.getPagamento().getMesVencimento() + "/" + recibo.getPagamento().getAnoVencimento());
    html.append("<br>");
    html.append("<b>Serviço: </b>"+ recibo.getPagamento().getServico().getTipoServico().getDescricao());
    html.append("<br>");
    html.append("<b>Forma de Pagamento: </b>" + recibo.getFormaPagamento().getDescricao());
    html.append("<br>");
    if(recibo.getFormaPagamento() == FormaPagamento.CHEQUE) {
    	html.append("<b>Número do Cheque: </b>" + recibo.getNumeroCheque());
    	html.append("<br>");
    	html.append("<b>Emitente: </b>" + recibo.getNomeEmitente());
    	html.append("<br>");
    	html.append("<b>Banco: </b>" + recibo.getBanco());
    	html.append("<br>");
    }
    if(!recibo.getListaReciboDetalhe().isEmpty()) {
    	html.append("<br>");
    	html.append("<b>Detalhes</b> <br>");
		for(ReciboDetalhe reciboDetalhe : recibo.getListaReciboDetalhe()) {
			html.append("<b> - Vencimento: </b>" + reciboDetalhe.getPagamento().getMesVencimento() + "/" + reciboDetalhe.getPagamento().getAnoVencimento() + " <b>Parcela: </b>" + reciboDetalhe.getPagamento().getNumeroParcela() + " <b>Valor: </b>" +StringUtilsOdontosis.formatarDouble(reciboDetalhe.getValor().doubleValue()));
			html.append("<br>");
		}
    	
    }
    html.append("<br>");
    html.append("<br>");
    html.append("<b>Responsável: </b>" + recibo.getUsuario().getNome());
    //html.append(b)
    html.append("<div style=\"float: right\"><a href=\"javascript:ocultarDescricao();\" class=\"botao\">Fechar</a> </div>");
    html.append("<script language=\"JavaScript\" type=\"text/javaScript\">exibirDescricao();</script>");

    return html.toString();
  }

}

